import jieba
from dataset import SENTENCES

def demo(sentence:list=["支持四种分词模式"]):
    '''
    @param sentence: 句子
    '''
    jieba.initialize()
    ret = [];
    for s in sentence:
        ret.append(jieba.lcut(s))
    return ret

def help():
    '''
        Parameter:
        - sentence: The str(unicode) to be segmented.
        - cut_all: Model type. True for full pattern, False for accurate pattern.
        - HMM: Whether to use the Hidden Markov Model.    
    '''
def 模式差别():
    '''
    * 支持四种分词模式：
    * 精确模式，试图将句子最精确地切开，适合文本分析；
    * 全模式，把句子中所有的可以成词的词语都扫描出来, 速度非常快，但是不能解决歧义；
    * 搜索引擎模式，在精确模式的基础上，对长词再次切分，提高召回率，适合用于搜索引擎分词。
    * paddle模式，利用PaddlePaddle深度学习框架，训练序列标注（双向GRU）网络模型实现分词。同时支持词性标注。paddle模式使用需安装paddlepaddle-tiny，`pip install paddlepaddle-tiny==1.6.1`。目前paddle模式支持jieba v0.40及以上版本。jieba v0.40以下版本，请升级jieba，`pip install jieba --upgrade` 。[PaddlePaddle官网](https://www.paddlepaddle.org.cn/)

    s = "我来到北京清华大学"
    jieba.cut(s,cut_all=True)
    【全模式】: 我/ 来到/ 北京/ 清华/ 清华大学/ 华大/ 大学

    jieba.cut(s)
    【精确模式】: 我/ 来到/ 北京/ 清华大学

    【新词识别】：他, 来到, 了, 网易, 杭研, 大厦    (此处，“杭研”并没有在词典中，但是也被Viterbi算法识别出来了)

    jieba.cut_for_search(s)
    【搜索引擎模式】： 小明, 硕士, 毕业, 于, 中国, 科学, 学院, 科学院, 中国科学院, 计算, 计算所, 后, 在, 日本, 京都, 大学, 日本京都大学, 深造
    '''




def 强制低频词():
    '''
    将高频词汇拆分强制其为低频词汇

        jieba.suggest_freq(('今天', '天气'), True)
    或
        jieba.del_word('今天天气')

    让“今天”，“天气”这两个词汇的频率高于 “今天天气”

    [Q] 强制高频词是 后来居上？
    '''
    s = "今天天气很好"
    r = []
    r.append(jieba.lcut(s))
    jieba.suggest_freq(("今天","天气"),True)
    r.append(jieba.lcut(s))
    return r 

def 强制高频词():
    '''
    词总是被拆分
        jieba.suggest_freq('今天天气', True)
    '''

def 关闭新词发现():
    '''
    当一次词组出现的频率高了后会自动添加为新词，默认开启

    jieba.cut('丰田太省了', HMM=False) 
    jieba.cut('我们中出了一个叛徒', HMM=False)

    '''
def 常用接口():
    '''
基本分词
    cut 
    lcut

搜索模式
    cut_for_search 
    lcut_for_search

词频调整
   suggest_freq(segment, tune=True)
   suggest_freq((segment,), tune=True)

词典调整
    add_word(word, freq=None, tag=None)
    del_word(word)

自备词典
    jieba.load_userdict(file_name)


    '''

if __name__ == "__main__":
    ret = demo(SENTENCES)
    for idx,seq in enumerate(ret) :
        print("sentence",SENTENCES[idx])
        print("segmentation,","/".join(seq) )
        print("")